#ifndef __U_FILE_H
#define __U_FILE_H

#include <sys/stat.h>
#include <unistd.h>
#include <dirent.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
#include <ctype.h>
#include <stdint.h>

#include "U_great.h"



#define BUFFER_SIZE 512


int read_file(char* file_in);
int write_csv(char* file_in,float* data_in);
void find_files_recursively(const char *path, const char *ext, char ***files, int *file_count);
// int bin_rw(char* path_out,char* path_in);
int bin_rw(char* path_out,char* path_in,size_t data_lens,size_t starting_point);
int raw_transition_test(void);                                                                      //执行该文件时不需要将raw_out文件夹清空，会自动清空文件夹

int raw_transition_test1(const char *U_path_in,
                         char *U_path_out,
                         uint8_t U_frame_select,
                         size_t U_data_lens
                         );
int write_csv1(char* file_in,float* data_in,int file_len_rows,int file_len_cols);//一维数据写入

/// @brief 读csv文件到二维数组
/// @param filename 文件路径
/// @param data 二维数组存储
void readCSV(const char* filename,float data[MAX_ROWS][MAX_COLS]);

/// @brief 打印二维数组
/// @param data 二维数组传入
/// @param row 行数
/// @param col 列数
void printCSV(float data[MAX_ROWS][MAX_COLS],int row, int col);

/// @brief 保存二维数组至csv文件
/// @param filename 保存文件的文件路径
/// @param data 二维数组
/// @param rows 行数
/// @param cols 列数
void saveCSV(const char* filename, float data[MAX_ROWS][MAX_COLS], int rows, int cols);

#endif
